﻿namespace DimOS.Constants
{
    //Centralized store of hardcoded separator characters
    public static class Separators
    {
        public const char SectionSplitter = '=';
        public const char SpaceSplitter = Tokens.Space;
        public const char InitSplitter = '_';
        public static readonly char InfoSplitter = Symbols.LineHorizontal[0];

        public const char InitIndicatorStatusBraceLeft = '<';
        public const char InitIndicatorStatusBraceRight = '>';
        public const char InitIndicatorStatusLoading = '.';
        public const string InitIndicatorStatusLoaded = "DONE";
        public const string InitIndicatorStatusFailed = "FAIL";
        public const char InitIndicatorBarBraceLeft = '[';
        public const char InitIndicatorBarBraceRight = ']';
        public const char InitIndicatorBarLoading = '#';

        public const char PromptBraceLeft = '[';
        public const char PromptBraceRight = ']';
        public const char PromptDelimiter = '.';
        public const char PromptSpecifier = ':';
        public const string PromptRoot = "root";
        public const string PromptUser = "user";

        public const string Brainfuck = "Brainfuck";

        public static readonly char IndicatorScrollUp = Symbols.ArrowUp[0];
        public static readonly char IndicatorScrollDown = Symbols.ArrowDown[0];
        public static readonly char IndicatorScrollUpDown = Symbols.ArrowUpDown[0];
        public static readonly char IndicatorScrollUpDownStop = Symbols.ArrowUpDownStop[0];
        public static readonly char IndicatorScrollLeft = Symbols.ArrowLeft[0];
        public static readonly char IndicatorScrollRight = Symbols.ArrowRight[0];
        public static readonly char IndicatorScrollLeftRight = Symbols.ArrowLeftRight[0];
        public static readonly char IndicatorScrollStop = Symbols.Diamonds[0];
        public static readonly char IndicatorScrollDisabled = Symbols.Section[0];

        public static readonly char ScreenDelimiterMiddle = Symbols.LineVertical[0];
        public static readonly char ScreenDelimiterStart = Symbols.BoxLeft[0];
        public static readonly char ScreenDelimiterEnd = Symbols.BoxRight[0];

        public static readonly char BufferDelimiter = Symbols.LineVertical[0];

        public static readonly string IndicatorInteger = Symbols.QuestionInverted + Symbols.QuestionInverted;
        public static readonly char IndicatorScrollBufferLeft = Symbols.TriangleLeft[0];
        public static readonly char IndicatorScrollBufferRight = Symbols.TriangleRight[0];

        public const char IndicatorRoot = '#';
        public const char IndicatorUser = '$';
        public const char PathTemp = '@';
        public const char PathDelimiter = '>'; //Changing this will also affect value assignment in advanced paths
        public const char PathCurrent = '^';
        public const char PathParent = '<'; //Changing this will also affect value assignment in advanced paths
        public static readonly char PathFit = Symbols.ArrowRight[0];

        public const char CommandExtensionDelimiter = '.';
        public const char HelpExtensionDelimiter = '|';

        public const char StudyToolsDelimiter = '/';
        public const char DateDelimiter = '.';
        public const char TimeDelimiter = ':';

        public static readonly char PathCopyDelimiter = Symbols.AngleQuoteRight[0];
        public static readonly char PathMoveDelimiter = Symbols.ArrowRight[0];
        public const char RenamedPathLeft = '"';
        public const char RenamedPathRight = '"';
    }
}
